The present invention relates to a bus controller, and more particularly to a bus controller which terminates and restarts a bus without stopping the entire system.
In a conventional bus controller for an asynchronous bus, occurrence of noise or bus-fight on an asynchronous bus is predicted to generate an insertion/disconnection signal while the noise or bus-fight occurs. By receiving the insertion/disconnection signal, the asynchronous bus is temporally terminated. Thereby, a device can be inserted to and disconnected from the bus without stopping the entire system. That is called a "live-line insertion and disconnection".
In an asynchronous bus, a data available signal is utilized for ensuring timing. When a bus controller generates an insertion/disconnection signal, the data available signal is inactivated.
However, in a synchronous bus, timing of available data is predetermined. If a noise or bus-fight occurs during the predetermined timing, data on the synchronous bus may contain improper data.
Moreover, for a bus performing distributed arbitration, it is necessary to match arbitration pointers for all devices when a new device is inserted to the bus. However, since the arbitration pointers are not matched by the insertion/disconnection signal, it is necessary to match the arbitration pointers by a diagnostic device at timing of restarting.
Furthermore, in a split transaction bus system in which data read operation is divided into two bus transactions of request and response, since correspondence between the request and the response is performed by respective bus controllers, a newly inserted bus controller cannot manage the correspondence if the newly inserted bus controller is inserted before the response is received.